
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;

/* Une frame pour proposer au joueur de rejouer s'il est parvenu a la sortie du labyrinthe */
class Gagne extends JFrame implements ActionListener
{

/* ATTRIBUTS */
  private JPanel panneau;
  private AudioLabi audio;

/* CONSTRUCTEUR */
  public Gagne(AudioLabi a)
    {
      super("gagne");
      audio=a;
      setSize(this.getToolkit().getScreenSize());
      setResizable(false);
      panneauCreatorGagne();
      setContentPane(panneau);
      setFocusable(true);
      addKeyListener(new RaccourcisClavierGagne(this));
    }

    private void panneauCreatorGagne()
    {
        panneau = new JPanel();
        panneau.setLayout(new GridLayout(1,1));
        JButton bravo = new JButton(new ImageIcon(StaticFields.ressourcePath + "images/victoire.gif"));

        //Bouton Rejouer, raccourci clavier: ENTRER
        bravo.getAccessibleContext().setAccessibleDescription("rejouer");
        bravo.addActionListener(this);
        panneau.add(bravo);

        audio.stop();
        audio.win();
    }

    public void actionPerformed(ActionEvent ae)
    {
        JButton source = (JButton) ae.getSource();
        if ( source.getAccessibleContext().getAccessibleDescription().equals("rejouer"))
          rejouer();
    }

    /* Retourne a la Frame du choix de difficulte */
    public void rejouer()
    {
      audio.stop();
      Difficulte choix = new Difficulte(audio);
      choix.show();
      hide();
    }

    /* Quitte le jeu */
    public void quitter()
    {
      System.exit(0);
    }


}

/* Raccourcis claviers pour naviguer */
class RaccourcisClavierGagne extends KeyAdapter
{

    private Gagne victoire;

    public RaccourcisClavierGagne(Gagne won)
    {
      super();
      victoire = won;
    }

    public void keyPressed(KeyEvent ke)
    {
      switch(ke.getKeyCode())
      {
        case KeyEvent.VK_ENTER:
          victoire.rejouer();
          break;

        case KeyEvent.VK_ESCAPE:
          victoire.quitter();
          break;
      }
    }
}
